The invention relates to power management of an advanced configuration and power interface (ACPI) computer system.
Known power management techniques, such as the advanced power management (APM) algorithm, were implemented by basic input-output system (BIOS) instructions stored in read-only memory (ROM). When a power management or configuration event occurred (e.g., a request to transition from an "on" state to a "sleep" state), the BIOS received notice of the event via an operating system transparent interrupt known as a system management interrupt (SMI). It was the responsibility of the BIOS to manipulate the necessary software state information and to control the necessary hardware to perform the requested action.
Under the new ACPI, when a power management or configuration event occurs the operating system is notified via an operating system visible interrupt known as a system control interrupt (SCI). It is the operating system itself that directs all system and device power state transitions. Central to ACPI operations is an ACPI driver. This driver is an operating system level program which receives notice of all SCI events and either performs the necessary event handling actions itself, or passes control to an ACPI control method.
The ACPI specification represents an abstract interface between a computer system's hardware and firmware and its operating system. The ACPI includes a set of hardware registers, tables, and BIOS. ACPI registers are used to store and pass event information between the hardware/firmware and operating system. ACPI tables are used to describe system information (e.g., supported power states, power sources, clock sources), features (e.g., available hardware devices), and methods for controlling those features (e.g., ACPI control methods). ACPI BIOS is that part of the computer system firmware that implements the ACPI specified interfaces for sleep, wake, some restart operations, and provides permanent storage of ACPI table information.
In accordance with the ACPI specification, when a user activates a computer system's power button a SCI is transmitted to the operating system (the ACPI driver). As stated previously, it is the operating system's task to transition the system into the appropriate state: working (system dispatches and executes user code); soft-off (system consumes minimal amount of power, no user code is executed); or mechanical off (equivalent to unplugging the system's power cable).
When an ACPI computer system is "hung" (i.e., in the working state but failing to dispatch and/or execute code) and the user activates the system power button, the generated SCI cannot be processed because instructions are not being executed. Thus, when hung, momentarily pressing the power button will not transition the system into either the sleep or off state. To partially compensate for this situation, ACPI requires that hardware transition the system from the working state to the soft-off state when the power button is pressed and held for at least four seconds.